package org.example.day09;

/**
 * 第三章节3.2.1: 方法join的基本使用
 *      在线程B中执行线程A.join，则在线程B中会等线程A执行结束，线程B才继续执行。(插队)
 */
public class MyThread extends Thread{
    @Override
    public void run() {
        try {
            int value = (int)(Math.random()*10000);
            System.out.println("Thread-0线程执行" + value);
            System.out.println();
            Thread.sleep(value);
            System.out.println(System.currentTimeMillis() + "run");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        try {
            MyThread myThread = new MyThread();
            myThread.start();
            //main线程中执行别的线程对象的join方法，则是将别的线程的run方法串行插入到main线程中.
            myThread.join();
            System.out.println(System.currentTimeMillis() + "main");
            System.out.println("在Thread-0线程执行结束后再执行main(相当于串行将Thred线程中的run方法插入)");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
